home *** CD-ROM | disk | FTP | other *** search
- unit NonFlatButtons;
-
- interface
-
- implementation
-
- uses
- CommonStuff, ExtCtrls, Buttons, Menus, Forms, Controls,
- SysUtils, Dialogs;
-
- type
- TNonFlatButtons = class(TObject)
- private
- FSpeedBarPopup: TPopupMenu;
- FSpeedBar: TPanel;
- FSpeedBarFlat: TMenuItem;
- protected
- procedure SetFlatButtons(Value: Boolean);
- procedure DoFlatButtons(Sender: TObject);
- public
- constructor Create;
- destructor Destroy; override;
- end;
-
- resourcestring
- SFlat = '&Flat Buttons';
-
- const
- SSpeedBarPopup = 'SpeedbarMenu'; //Speed bar's TPopupMenu
- SSpeedBar = 'SpeedPanel'; //Speed bar component
- SRegFlatSpeedBar = 'Flat Speedbar'; //Registry string
-
-
- constructor TNonFlatButtons.Create;
- begin
- inherited Create;
- //Find speed bar
- FSpeedBar := GetComponent(Application.MainForm, SSpeedBar, SGenericError + SSpeedBar) as TPanel;
- //Find speed bar's popup menu
- FSpeedBarPopup := GetComponent(Application.MainForm, SSpeedBarPopup, SGenericError + SSpeedBarPopup) as TPopupMenu;
- //Set up option menu item
- FSpeedBarFlat := NewItem(SFlat, 0,
- Stuff.Ini.ReadBool(SRegSection, SRegFlatSpeedBar,
- (FSpeedBar.Controls[0] as TSpeedButton).Flat),
- True, DoFlatButtons, 0, '');
- FSpeedBarPopup.Items.Insert(1, FSpeedBarFlat);
-
- //Set the speedbar properties as dictated by registry
- SetFlatButtons(FSpeedBarFlat.Checked);
- end;
-
- destructor TNonFlatButtons.Destroy;
- begin
- //Get rid of option menu item
- FSpeedBarFlat.Free;
- //Restore IDE original state
- SetFlatButtons(True);
- //Save option information
- Stuff.Ini.WriteBool(SRegSection, SRegFlatSpeedBar, FSpeedBarFlat.Checked);
- inherited Destroy
- end;
-
- procedure TNonFlatButtons.SetFlatButtons(Value: Boolean);
- var
- Loop: Integer;
- begin
- //Set Flat option as appropriate
- with FSpeedBar do
- for Loop := 0 to ControlCount - 1 do
- if Controls[Loop] is TSpeedButton then
- TSpeedButton(Controls[Loop]).Flat := Value
- end;
-
- procedure TNonFlatButtons.DoFlatButtons(Sender: TObject);
- begin
- //Toggle Flat option
- with (Sender as TMenuItem) do
- begin
- Checked := not Checked;
- SetFlatButtons(Checked)
- end
- end;
-
- var
- NonFlatButtonsObject: TNonFlatButtons;
-
- initialization
- try
- NonFlatButtonsObject := TNonFlatButtons.Create
- except
- on E: Exception do
- ShowMessage(SSetupError + ': ' + E.Message)
- end
- finalization
- NonFlatButtonsObject.Free
- end.
-